﻿// Decompiled with JetBrains decompiler
// Type: DnProcessSimulateCommands.IsoParametricCurves.IsoParemtricCurveData
// Assembly: DnProcessSimulateCommands, Version=2402.0.0.890, Culture=neutral, PublicKeyToken=null
// MVID: A885D881-AEDF-447E-852A-6F13102E089C
// Assembly location: C:\Program Files\Tecnomatix_2402\eMPower\DotNetCommands\DnProcessSimulateCommands.dll

using Tecnomatix.Engineering;


namespace DnProcessSimulateCommands.IsoParametricCurves;

public class IsoParemtricCurveData
{
  private FaceDirection m_direction;
  private double m_distanceBetweenCurve;
  private double m_distanceFromStartingPoint;
  private string m_distanceBetweenCurvesByUnitStr;
  private string m_distanceFroStartingPointByUnitStr;
  private double m_leadingCurveLength;
  private int m_maxNumberCurves;
  private string m_namePrefix;
  private int m_numberOfCurves;
  private ITxExactGeometryFace m_face;
  private ITxGeometryCreation m_scope;
  private TxGroup m_block;

  ~IsoParemtricCurveData()
  {
  }

  public virtual void Dispose()
  {
  }

  public double DistanceBetweenCurves
  {
    get => this.m_distanceBetweenCurve;
    set => this.m_distanceBetweenCurve = value;
  }

  public double DistanceFromStartingPoint
  {
    get => this.m_distanceFromStartingPoint;
    set => this.m_distanceFromStartingPoint = value;
  }

  public string DistanceBetweenCurvesByUnitStr
  {
    get => this.m_distanceBetweenCurvesByUnitStr;
    set => this.m_distanceBetweenCurvesByUnitStr = value;
  }

  public string DistanceFromStartingPointByUnitStr
  {
    get => this.m_distanceFroStartingPointByUnitStr;
    set => this.m_distanceFroStartingPointByUnitStr = value;
  }

  public ITxExactGeometryFace Face
  {
    get => this.m_face;
    set => this.m_face = value;
  }

  public TxUVParametersRectangle FaceRectangle => this.m_face.GetParametricRange();

  public TxUVParametersRectangle GetStartingPointValue => this.Face.GetParametricRange();

  public bool isInUdirection()
  {
    return this.m_direction == FaceDirection.InUDirectionMax || this.m_direction == FaceDirection.InUDirectionMin;
  }

  public double LeadingCurveLength
  {
    get => this.m_leadingCurveLength;
    set => this.m_leadingCurveLength = value;
  }

  public int MaxNumberCurves
  {
    get => this.m_maxNumberCurves;
    set => this.m_maxNumberCurves = value;
  }

  public string NamePrefix
  {
    get => this.m_namePrefix;
    set => this.m_namePrefix = value;
  }

  public int NumberOfCurves
  {
    get => this.m_numberOfCurves;
    set => this.m_numberOfCurves = value;
  }

  public FaceDirection SelectedDirection
  {
    get => this.m_direction;
    set => this.m_direction = value;
  }

  public ITxGeometryCreation Scope
  {
    get => this.m_scope;
    set => this.m_scope = value;
  }

  public TxGroup Block
  {
    get => this.m_block;
    set => this.m_block = value;
  }

  internal bool isInNegativeDirection()
  {
    return this.m_direction == FaceDirection.InVDirectionMin || this.m_direction == FaceDirection.InUDirectionMin;
  }
}
